library(tidyverse)
library(sf)
library(rmapshaper)
library(here)
library(leaflet)
library(htmltools)
scotland <- read_sf(here("data_raw/SG_NHS_HealthBoards_2019/SG_NHS_HealthBoards_2019.shp"))
class(scotland)
[1] "sf"         "tbl_df"     "tbl"        "data.frame"
head(scotland, 14)
Simple feature collection with 14 features and 4 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 5512.998 ymin: 530250.8 xmax: 470332 ymax: 1220302
Projected CRS: OSGB 1936 / British National Grid
scotland_geometry <- st_geometry(scotland)

scotland_geometry
Geometry set for 14 features 
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 5512.998 ymin: 530250.8 xmax: 470332 ymax: 1220302
Projected CRS: OSGB 1936 / British National Grid
First 5 geometries:
MULTIPOLYGON (((201916.2 600444.4, 201918.4 600...
MULTIPOLYGON (((345325.9 579663.3, 345325.1 579...
MULTIPOLYGON (((266004.4 543544.6, 266010.9 543...
MULTIPOLYGON (((256533 740502, 256501.5 740379,...
MULTIPOLYGON (((383521.2 771234.7, 383524.3 771...
scotland_simple <- ms_simplify(scotland)
plot(scotland_simple)

alcohol <- read_csv("../data_clean/alcohol.csv") %>% 
  filter(sex == "All") %>% 
  filter(date_code == "2016-2019") %>% 
  filter(alcohol_consumption == "Hazardous/Harmful drinker")

-- Column specification --------------------------------------------------------------------------------------
cols(
  feature_code = col_character(),
  date_code = col_character(),
  measurement = col_character(),
  units = col_character(),
  value = col_double(),
  alcohol_consumption = col_character(),
  sex = col_character(),
  hb_name = col_character(),
  longitude = col_double(),
  latitude = col_double()
)
alcohol_scotland_simple <- scotland_simple %>% 
  left_join(alcohol, by = c("HBCode" = "feature_code")) 
ggplot(alcohol_scotland_simple) +
  geom_sf(aes(group = hb_name, fill = value)) +
  theme_minimal() +
  theme(panel.grid.major = element_blank(), axis.text = element_blank()) +
  ggtitle("Alcohol Consumption in Scotland") + 
  scale_fill_gradient(low = "green", high = "red")


alcohol_scotland_simple %>% 
  leaflet() %>% 
  addTiles() %>%
  addMarkers(lng = ~longitude,
                   lat = ~latitude,
             popup = ~HBName)
obesity <- read_csv("../data_clean/obesity.csv") %>% 
  filter(sex == "All") %>% 
  filter(date_code == "2016-2019") %>% 
  filter(obesity == "Obese")

-- Column specification --------------------------------------------------------------------------------------
cols(
  feature_code = col_character(),
  date_code = col_character(),
  measurement = col_character(),
  units = col_character(),
  value = col_double(),
  obesity = col_character(),
  sex = col_character(),
  hb_name = col_character(),
  longitude = col_double(),
  latitude = col_double()
)
scotland_simple %>% 
  left_join(obesity, by = c("HBCode" = "feature_code")) %>% 
ggplot() +
  geom_sf(aes(group = hb_name, fill = value)) +
  theme_minimal() +
  theme(panel.grid.major = element_blank(), axis.text = element_blank()) +
  ggtitle("Obesity in Scotland") + 
  scale_fill_gradient(low = "green", high = "red")

smoking_status <- read_csv("../data_clean/smoking_status.csv") %>% 
  filter(sex == "All") %>% 
  filter(date_code == "2016-2019") %>% 
  filter(smoking_status == "Current smoker")

-- Column specification --------------------------------------------------------------------------------------
cols(
  feature_code = col_character(),
  date_code = col_character(),
  measurement = col_character(),
  units = col_character(),
  value = col_double(),
  smoking_status = col_character(),
  sex = col_character(),
  hb_name = col_character(),
  longitude = col_double(),
  latitude = col_double()
)
scotland_simple %>% 
  left_join(smoking_status, by = c("HBCode" = "feature_code")) %>% 
ggplot() +
  geom_sf(aes(group = hb_name, fill = value)) +
  theme_minimal() +
  theme(panel.grid.major = element_blank(), axis.text = element_blank()) +
  ggtitle("Smoking Status in Scotland") + 
  scale_fill_gradient(low = "green", high = "red")

e_cig <- read_csv("../data_clean/e_cig.csv") %>% 
  filter(sex == "All") %>% 
  filter(date_code == "2016-2019") %>% 
  filter(e_cigarette_use == "Currently using")

-- Column specification --------------------------------------------------------------------------------------
cols(
  feature_code = col_character(),
  date_code = col_character(),
  measurement = col_character(),
  units = col_character(),
  value = col_double(),
  e_cigarette_use = col_character(),
  sex = col_character(),
  hb_name = col_character(),
  longitude = col_double(),
  latitude = col_double()
)
scotland_simple %>% 
  left_join(e_cig, by = c("HBCode" = "feature_code")) %>% 
ggplot() +
  geom_sf(aes(group = hb_name, fill = value)) +
  theme_minimal() +
  theme(panel.grid.major = element_blank(), axis.text = element_blank()) +
  ggtitle("E-cigarette use in Scotland") + 
  scale_fill_gradient(low = "green", high = "red")

alcohol %>% 
  filter(sex == "All") %>% 
  filter(hb_name == "Scotland") %>% 
    filter(date_code == "2016-2019") %>% 
  filter(alcohol_consumption == "Hazardous/Harmful drinker") 

alcohol_scotland
Error: object 'alcohol_scotland' not found
alcohol %>%
                    filter(sex == "All" , date_code == "2016-2019") %>%
                    filter(hb_name == "Scotland") %>%
                    filter(alcohol_consumption == "Hazardous/Harmful drinker")
alcohol %>%
                    filter(sex == "All" , date_code == "2016-2019") %>%
                    filter(hb_name == "Scotland") %>%
                    filter(alcohol_consumption == "Hazardous/Harmful drinker")
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7cn0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShzZikNCmxpYnJhcnkocm1hcHNoYXBlcikNCmxpYnJhcnkoaGVyZSkNCmxpYnJhcnkobGVhZmxldCkNCmxpYnJhcnkoaHRtbHRvb2xzKQ0KYGBgDQoNCmBgYHtyfQ0Kc2NvdGxhbmQgPC0gcmVhZF9zZihoZXJlKCJkYXRhX3Jhdy9TR19OSFNfSGVhbHRoQm9hcmRzXzIwMTkvU0dfTkhTX0hlYWx0aEJvYXJkc18yMDE5LnNocCIpKQ0KYGBgDQoNCmBgYHtyfQ0KY2xhc3Moc2NvdGxhbmQpDQpgYGANCg0KYGBge3J9DQpoZWFkKHNjb3RsYW5kLCAxNCkNCmBgYA0KDQpgYGB7cn0NCnNjb3RsYW5kX2dlb21ldHJ5IDwtIHN0X2dlb21ldHJ5KHNjb3RsYW5kKQ0KDQpzY290bGFuZF9nZW9tZXRyeQ0KYGBgDQoNCmBgYHtyfQ0Kc2NvdGxhbmRfc2ltcGxlIDwtIG1zX3NpbXBsaWZ5KHNjb3RsYW5kKQ0KYGBgDQoNCmBgYHtyfQ0KcGxvdChzY290bGFuZF9zaW1wbGUpDQpgYGANCg0KDQoNCmBgYHtyfQ0KYWxjb2hvbCA8LSByZWFkX2NzdigiLi4vZGF0YV9jbGVhbi9hbGNvaG9sLmNzdiIpICU+JSANCiAgZmlsdGVyKHNleCA9PSAiQWxsIikgJT4lIA0KICBmaWx0ZXIoZGF0ZV9jb2RlID09ICIyMDE2LTIwMTkiKSAlPiUgDQogIGZpbHRlcihhbGNvaG9sX2NvbnN1bXB0aW9uID09ICJIYXphcmRvdXMvSGFybWZ1bCBkcmlua2VyIikNCg0KYWxjb2hvbF9zY290bGFuZF9zaW1wbGUgPC0gc2NvdGxhbmRfc2ltcGxlICU+JSANCiAgbGVmdF9qb2luKGFsY29ob2wsIGJ5ID0gYygiSEJDb2RlIiA9ICJmZWF0dXJlX2NvZGUiKSkgDQpnZ3Bsb3QoYWxjb2hvbF9zY290bGFuZF9zaW1wbGUpICsNCiAgZ2VvbV9zZihhZXMoZ3JvdXAgPSBoYl9uYW1lLCBmaWxsID0gdmFsdWUpKSArDQogIHRoZW1lX21pbmltYWwoKSArDQogIHRoZW1lKHBhbmVsLmdyaWQubWFqb3IgPSBlbGVtZW50X2JsYW5rKCksIGF4aXMudGV4dCA9IGVsZW1lbnRfYmxhbmsoKSkgKw0KICBnZ3RpdGxlKCJBbGNvaG9sIENvbnN1bXB0aW9uIGluIFNjb3RsYW5kIikgKyANCiAgc2NhbGVfZmlsbF9ncmFkaWVudChsb3cgPSAiZ3JlZW4iLCBoaWdoID0gInJlZCIpDQoNCmFsY29ob2xfc2NvdGxhbmRfc2ltcGxlICU+JSANCiAgbGVhZmxldCgpICU+JSANCiAgYWRkVGlsZXMoKSAlPiUNCiAgYWRkTWFya2VycyhsbmcgPSB+bG9uZ2l0dWRlLA0KICAgICAgICAgICAgICAgICAgIGxhdCA9IH5sYXRpdHVkZSwNCiAgICAgICAgICAgICBwb3B1cCA9IH5IQk5hbWUpDQpgYGANCg0KYGBge3J9DQpvYmVzaXR5IDwtIHJlYWRfY3N2KCIuLi9kYXRhX2NsZWFuL29iZXNpdHkuY3N2IikgJT4lIA0KICBmaWx0ZXIoc2V4ID09ICJBbGwiKSAlPiUgDQogIGZpbHRlcihkYXRlX2NvZGUgPT0gIjIwMTYtMjAxOSIpICU+JSANCiAgZmlsdGVyKG9iZXNpdHkgPT0gIk9iZXNlIikNCg0Kc2NvdGxhbmRfc2ltcGxlICU+JSANCiAgbGVmdF9qb2luKG9iZXNpdHksIGJ5ID0gYygiSEJDb2RlIiA9ICJmZWF0dXJlX2NvZGUiKSkgJT4lIA0KZ2dwbG90KCkgKw0KICBnZW9tX3NmKGFlcyhncm91cCA9IGhiX25hbWUsIGZpbGwgPSB2YWx1ZSkpICsNCiAgdGhlbWVfbWluaW1hbCgpICsNCiAgdGhlbWUocGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfYmxhbmsoKSwgYXhpcy50ZXh0ID0gZWxlbWVudF9ibGFuaygpKSArDQogIGdndGl0bGUoIk9iZXNpdHkgaW4gU2NvdGxhbmQiKSArIA0KICBzY2FsZV9maWxsX2dyYWRpZW50KGxvdyA9ICJncmVlbiIsIGhpZ2ggPSAicmVkIikNCmBgYA0KDQpgYGB7cn0NCnNtb2tpbmdfc3RhdHVzIDwtIHJlYWRfY3N2KCIuLi9kYXRhX2NsZWFuL3Ntb2tpbmdfc3RhdHVzLmNzdiIpICU+JSANCiAgZmlsdGVyKHNleCA9PSAiQWxsIikgJT4lIA0KICBmaWx0ZXIoZGF0ZV9jb2RlID09ICIyMDE2LTIwMTkiKSAlPiUgDQogIGZpbHRlcihzbW9raW5nX3N0YXR1cyA9PSAiQ3VycmVudCBzbW9rZXIiKQ0KDQpzY290bGFuZF9zaW1wbGUgJT4lIA0KICBsZWZ0X2pvaW4oc21va2luZ19zdGF0dXMsIGJ5ID0gYygiSEJDb2RlIiA9ICJmZWF0dXJlX2NvZGUiKSkgJT4lIA0KZ2dwbG90KCkgKw0KICBnZW9tX3NmKGFlcyhncm91cCA9IGhiX25hbWUsIGZpbGwgPSB2YWx1ZSkpICsNCiAgdGhlbWVfbWluaW1hbCgpICsNCiAgdGhlbWUocGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfYmxhbmsoKSwgYXhpcy50ZXh0ID0gZWxlbWVudF9ibGFuaygpKSArDQogIGdndGl0bGUoIlNtb2tpbmcgU3RhdHVzIGluIFNjb3RsYW5kIikgKyANCiAgc2NhbGVfZmlsbF9ncmFkaWVudChsb3cgPSAiZ3JlZW4iLCBoaWdoID0gInJlZCIpDQpgYGANCg0KYGBge3J9DQplX2NpZyA8LSByZWFkX2NzdigiLi4vZGF0YV9jbGVhbi9lX2NpZy5jc3YiKSAlPiUgDQogIGZpbHRlcihzZXggPT0gIkFsbCIpICU+JSANCiAgZmlsdGVyKGRhdGVfY29kZSA9PSAiMjAxNi0yMDE5IikgJT4lIA0KICBmaWx0ZXIoZV9jaWdhcmV0dGVfdXNlID09ICJDdXJyZW50bHkgdXNpbmciKQ0KDQpzY290bGFuZF9zaW1wbGUgJT4lIA0KICBsZWZ0X2pvaW4oZV9jaWcsIGJ5ID0gYygiSEJDb2RlIiA9ICJmZWF0dXJlX2NvZGUiKSkgJT4lIA0KZ2dwbG90KCkgKw0KICBnZW9tX3NmKGFlcyhncm91cCA9IGhiX25hbWUsIGZpbGwgPSB2YWx1ZSkpICsNCiAgdGhlbWVfbWluaW1hbCgpICsNCiAgdGhlbWUocGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfYmxhbmsoKSwgYXhpcy50ZXh0ID0gZWxlbWVudF9ibGFuaygpKSArDQogIGdndGl0bGUoIkUtY2lnYXJldHRlIHVzZSBpbiBTY290bGFuZCIpICsgDQogIHNjYWxlX2ZpbGxfZ3JhZGllbnQobG93ID0gImdyZWVuIiwgaGlnaCA9ICJyZWQiKQ0KYGBgDQoNCmBgYHtyfQ0KYWxjb2hvbCAlPiUgDQogIGZpbHRlcihzZXggPT0gIkFsbCIpICU+JSANCiAgZmlsdGVyKGhiX25hbWUgPT0gIlNjb3RsYW5kIikgJT4lIA0KICAgIGZpbHRlcihkYXRlX2NvZGUgPT0gIjIwMTYtMjAxOSIpICU+JSANCiAgZmlsdGVyKGFsY29ob2xfY29uc3VtcHRpb24gPT0gIkhhemFyZG91cy9IYXJtZnVsIGRyaW5rZXIiKSANCg0KYWxjb2hvbF9zY290bGFuZA0KDQoNCiAgc2VsZWN0KHZhbHVlKSAlPiUgDQogIHB1bGwoKQ0KYGBgDQoNCmBgYHtyfQ0Kb2Jlc2l0eV9zY290bGFuZCA8LSByZWFkX2NzdigiLi4vZGF0YV9jbGVhbi9vYmVzaXR5LmNzdiIpICU+JSANCiAgZmlsdGVyKHNleCA9PSAiQWxsIikgJT4lIA0KICBmaWx0ZXIoaGJfbmFtZSA9PSAiU2NvdGxhbmQiKSAlPiUgDQogICAgZmlsdGVyKGRhdGVfY29kZSA9PSAiMjAxNi0yMDE5IikgJT4lIA0KICBmaWx0ZXIob2Jlc2l0eSA9PSAiT2Jlc2UiKQ0KDQpvYmVzaXR5X3Njb3RsYW5kDQpgYGANCg0KYGBge3J9DQoNCmFsY29ob2wgJT4lDQogICAgICAgICAgICAgICAgICAgIGZpbHRlcihzZXggPT0gIkFsbCIgfCBkYXRlX2NvZGUgPT0gIjIwMTYtMjAxOSIpICU+JQ0KICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoaGJfbmFtZSA9PSAiU2NvdGxhbmQiKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKGFsY29ob2xfY29uc3VtcHRpb24gPT0gIkhhemFyZG91cy9IYXJtZnVsIGRyaW5rZXIiKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0KHZhbHVlKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgcHVsbCgpDQpgYGANCg0KDQpgYGB7cn0NCnNtb2tpbmdfc3RhdHVzX3Njb3RsYW5kIDwtIHJlYWRfY3N2KCIuLi9kYXRhX2NsZWFuL3Ntb2tpbmdfc3RhdHVzLmNzdiIpICU+JSANCiAgZmlsdGVyKHNleCA9PSAiQWxsIikgJT4lIA0KICBmaWx0ZXIoaGJfbmFtZSA9PSAiU2NvdGxhbmQiKSAlPiUgDQogICAgZmlsdGVyKGRhdGVfY29kZSA9PSAiMjAxNi0yMDE5IikgJT4lIA0KICBmaWx0ZXIoc21va2luZ19zdGF0dXMgPT0gIkN1cnJlbnQgc21va2VyIikNCg0Kc21va2luZ19zdGF0dXNfc2NvdGxhbmQNCmBgYA0KDQpgYGB7cn0NCmVfY2lnX3Njb3RsYW5kIDwtIHJlYWRfY3N2KCIuLi9kYXRhX2NsZWFuL2VfY2lnLmNzdiIpICU+JSANCiAgZmlsdGVyKHNleCA9PSAiQWxsIikgJT4lIA0KICBmaWx0ZXIoaGJfbmFtZSA9PSAiU2NvdGxhbmQiKSAlPiUgDQogICAgZmlsdGVyKGRhdGVfY29kZSA9PSAiMjAxNi0yMDE5IikgJT4lIA0KICBmaWx0ZXIoZV9jaWdhcmV0dGVfdXNlID09ICJDdXJyZW50bHkgdXNpbmciKQ0KDQplX2NpZ19zY290bGFuZA0KYGBgDQoNCmBgYHtyfQ0KdW5pcXVlIChvYmVzaXR5JHNleCkNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBzZWxlY3RJbnB1dCgieWVhcl9zZWxlY3Rpb24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZWFyIFNlbGVjdGlvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcyA9IHVuaXF1ZShvYmVzaXR5JGRhdGVfY29kZSkpDQoNCmBgYA0KDQpgYGB7cn0NCmFsY29ob2wgJT4lDQogICAgICAgICAgICAgICAgICAgIGZpbHRlcihzZXggPT0gIkFsbCIgLCBkYXRlX2NvZGUgPT0gIjIwMTYtMjAxOSIpICU+JQ0KICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoaGJfbmFtZSA9PSAiU2NvdGxhbmQiKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKGFsY29ob2xfY29uc3VtcHRpb24gPT0gIkhhemFyZG91cy9IYXJtZnVsIGRyaW5rZXIiKQ0KYGBgDQoNCg==